A computer network supports communication between various network devices that may comprise personal computers, laptops, workstations, personal digital assistants (PDAs), wireless devices, network-ready appliances, file servers, print servers, routers, or other devices. Certain devices within the network, such as routers, route communication across the network between the various devices. Typically, routers include a routing engine and an interface controller, where the routing engine maintains routing tables that detail paths through the network connecting these various devices, and the interface controller controls interface cards responsible for routing the information along these paths.
Generally, both the routing engine and interface controller utilize separate operating systems to handle exceptions and interrupts that may arise during the course of execution. In addition, conventional routers comprise separate processors to execute each of these operating systems. However, including multiple processors may substantially increase the total cost of the router, and converging the separate operating systems into a single operating system for execution within a single processor may be prohibitively complex.
Convergence issues may arise when separate operating systems maintain overlapping name spaces. For example, both the routing engine operating system and the interface controller operating system may define variables by the name “counter.” The resulting name space overlap requires considerable time and effort to correct. Other convergence issues may include the use of disparate operating systems that may require different clock cycles to execute properly and different exception handling routines to properly handle exceptions. Converting operating systems requires significant effort to maintain the desired properties of the original operating systems.